package com.minimalist.common.entity.lindi.po;

import com.minimalist.common.config.mybatis.InsertFullColumnHandler;
import com.minimalist.common.config.mybatis.UpdateFullColumnHandler;
import com.minimalist.common.config.mybatis.bo.BaseEntity;
import com.mybatisflex.annotation.Table;


import java.io.Serial;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * 林地指标交易平台_价格配置表 实体类。
 *
 * @author 11987
 * @since 2025-07-09
 */
@Table(value = "LINDI_PRICE_CONFIG", onInsert = InsertFullColumnHandler.class, onUpdate = UpdateFullColumnHandler.class)
public class LindiPriceConfig extends BaseEntity implements Serializable{

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 价格配置ID
     */
    private Long priceConfigId;

    /**
     * 价格名称
     */
    private String priceName;

    /**
     * 价格类型
     */
    private String priceType;

    /**
     * 单价(万元/亩)
     */
    private String unitPrice;

    /**
     * 生效日期
     */
    private Timestamp effectiveDate;

    /**
     * 失效日期
     */
    private Timestamp expireDate;

    /**
     * 备注
     */
    private String remark;

    public LindiPriceConfig() {
    }

    public Long getPriceConfigId() {
        return priceConfigId;
    }

    public void setPriceConfigId(Long priceConfigId) {
        this.priceConfigId = priceConfigId;
    }

    public String getPriceName() {
        return priceName;
    }

    public void setPriceName(String priceName) {
        this.priceName = priceName;
    }

    public String getPriceType() {
        return priceType;
    }

    public void setPriceType(String priceType) {
        this.priceType = priceType;
    }

    public String getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(String unitPrice) {
        this.unitPrice = unitPrice;
    }

    public Timestamp getEffectiveDate() {
        return effectiveDate;
    }

    public void setEffectiveDate(Timestamp effectiveDate) {
        this.effectiveDate = effectiveDate;
    }

    public Timestamp getExpireDate() {
        return expireDate;
    }

    public void setExpireDate(Timestamp expireDate) {
        this.expireDate = expireDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        if (!super.equals(o)) {
            return false;
        }
        LindiPriceConfig that = (LindiPriceConfig) o;
        return java.util.Objects.equals(priceConfigId, that.priceConfigId) &&
               java.util.Objects.equals(priceName, that.priceName) &&
               java.util.Objects.equals(priceType, that.priceType) &&
               java.util.Objects.equals(unitPrice, that.unitPrice) &&
               java.util.Objects.equals(effectiveDate, that.effectiveDate) &&
               java.util.Objects.equals(expireDate, that.expireDate) &&
               java.util.Objects.equals(remark, that.remark);
    }

    @Override
    public int hashCode() {
        return java.util.Objects.hash(super.hashCode(), priceConfigId, priceName, priceType, unitPrice, effectiveDate, expireDate, remark);
    }
}
